#include <iostream>
#include <list>
#include <vector>
#include <cstring>
#include <string>
using namespace std;
//把list里面char*指针指向的内容赋值给到vector
//先从标准输入获取数据存到string里面，然后把这个存到堆上，
//再然后把返回值用来个list赋值，然后再把这个指针解引用给vector
void test(){
    list<char*> lt;
    vector<string> vec;
    string input_string;
    int flat=0;
    string stop="stop";
    while(1){
    cin>>input_string;
    if(input_string==stop){
        break;
    }
    char * temp=new char[input_string.size()+1];
    lt.push_back(temp);
    strcpy(temp,input_string.c_str());
    }
    for(auto ele:lt){
        vec.push_back(string(ele));
    }
    for(auto ele:vec){
        cout<<ele<<endl;
    }

}
int main(int argc, char * argv[]){
    test();
    return 0;
}

